<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //模拟获取  用户数据 订单数据 商品数据
        function getUsers(){
            setTimeout(() => {
                let data = '用户数据'
                //调用 next 方法，并且将数据传入
                iterator.next(data)//第二次调用 next 方法 这个实参将作为第一个 yeild 语句的返回结果
            }, 1000)
        }
        function getOrders(){
            setTimeout(() => {
                let data = '订单数据'
                iterator.next(data)//第三次调用 next 方法  这个实参将作为第二个 yeild 语句的返回结果
            }, 1000)
        }
        function getGoods(){
            setTimeout(() => {
                let data = '商品数据'
                iterator.next(data)//第四次调用 next 方法  这个实参将作为第三个 yeild 语句的返回结果
            }, 1000)
        } 
        //声明一个生成器函数
        function * gen(){
            let users = yield getUsers()
            console.log(users);
            let orders = yield getOrders()
            console.log(orders);
            let goods = yield getGoods()
            console.log(goods);
        }
        //调用生成器函数
        let iterator = gen()
        iterator.next()
    </script>
</body>
</html>